<!DOCTYPE html>
<!--

// Copyright 2012 Traceur Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

-->
<html>
<head>
<title></title>
<script src="../../../third_party/closure-library/closure/goog/base.js"></script>
<script>

goog.require('goog.testing.jsunit');

</script>
<script src="../../../bin/traceur.js"></script>
</head>
<body>
<script>

var removeDotSegments = traceur.util.removeDotSegments;

function testRemoveDotSegments() {
  assertEquals('/', removeDotSegments('/'));
  assertEquals('.', removeDotSegments('.'));
  assertEquals('./', removeDotSegments('./'));
  assertEquals('/', removeDotSegments('/.'));
  assertEquals('/', removeDotSegments('/..'));
  assertEquals('../', removeDotSegments('../'));
  assertEquals('..', removeDotSegments('..'));
  assertEquals('../..', removeDotSegments('../..'));
  assertEquals('../../', removeDotSegments('../../'));
  assertEquals('../a', removeDotSegments('../a'));
  assertEquals('../a/', removeDotSegments('../a/'));

  assertEquals('.', removeDotSegments('a/..'));
  assertEquals('./', removeDotSegments('a/../'));
  assertEquals('a', removeDotSegments('a/b/..'));
  assertEquals('a/', removeDotSegments('a/b/../'));

  assertEquals('b', removeDotSegments('a/../b'));
  assertEquals('b/', removeDotSegments('a/../b/'));

  assertEquals('../b', removeDotSegments('a/../../b'));
  assertEquals('../b/', removeDotSegments('a/../../b/'));

  assertEquals('..', removeDotSegments('a/../../b/..'));
  assertEquals('../', removeDotSegments('a/../../b/../'));

  assertEquals('a/b', removeDotSegments('a/./b'));
  assertEquals('a/b/', removeDotSegments('a/./b/'));
  assertEquals('a/b', removeDotSegments('a/././b'));
  assertEquals('a/b/', removeDotSegments('a/././b/'));
  assertEquals('a/b', removeDotSegments('a/././b/.'));
  assertEquals('a/b/', removeDotSegments('a/././b/./'));

  assertEquals('b', removeDotSegments('a/./../b'));
  assertEquals('b/', removeDotSegments('a/./../b/'));
}

</script>
</body>
</html>
